import redis   # 导入redis模块，通过python操作redis 也可以直接在redis主机的服务端操作缓存数据库

r = redis.Redis(host='localhost', port=6379, decode_responses=True)   # host是redis主机，需要redis服务端和客户端都启动 redis默认端口是6379

def insert_one_data_to_redisDB(t, x, y):
    t_str=str(t)
    x_str=str(x)
    y_str=str(y)
    t_x_y=t_str+"_"+x_str+"_"+y_str #字符串拼接，取数据时再split分开
    r.rpush('fpga', t_x_y)

def db_redis_clear():
    r.delete('fpga')
    r.delete('msg')
    insert_one_data_to_redisDB(0.0, 0, 0.0)

def get_fpga_last_data_from_redis():
    #查询最新一条数据
    return float(r.lindex("fpga", -1).split("_")[2])



def get_web_l1_data():
    fpga = r.lrange("fpga", -10000, -1)
    x,y = [],[]
    for i in fpga:
        x.append(  int(i.split("_")[1]))
        y.append(float(i.split("_")[2]))
    res={
        'x':x,
        'y':y
    }
    return res

def get_web_l2_data():
    fpga = r.lrange("fpga", 0, -1)
    x,y = [],[]
    for i in fpga:
        x.append(  int(i.split("_")[1]))
        y.append(float(i.split("_")[2]))
    res={
        'x':x,
        'y':y
    }
    return res


def append_to_log(msg):
    #消息队列
    r.rpush('msg', msg)


if __name__=="__main__":
    insert_one_data_to_redisDB(0.0, 0, 100.054)
    # insert_redisDB(1, 0, 1)
    # insert_redisDB(2, 0, 2)
    # insert_redisDB(3, 0, 3)
    # insert_redisDB(4, 0, 4)
    # insert_redisDB(5, 0, 5)
    # insert_redisDB(6, 0, 0)

    insert_one_data_to_redisDB(0.0, 0, 200.054)
    # a=float(get_redis_fpga_last_data())
    # data=get_redis_fpga_last_data()
    # ydata=data.split('_')[2]
    print(get_fpga_last_data_from_redis())
    print(get_web_l1_data())
